home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 7 / BBS in a Box - Macintosh - Volume VII (BBS in a Box) (January 1993).iso / Files / Prog / T / Thinkcup.cpt / TCL Update / TCL Update Doc next >
Encoding:
Text File  |  1990-03-14  |  9.4 KB  |  307 lines  |  [TEXT/KAHL]

  1. TCL UPDATE INSTRUCTIONS
  2. =======================
  3. Copyright © 1990 Symantec Corporation. All rights reserved.
  4. 3/15/90
  5.  
  6. INTRODUCTION
  7. ============
  8. Since Symantec released the THINK Class Library, we've found, and users have
  9. reported, several bugs. This update fixes these bugs
  10.  
  11. This update uses a program called AutoWeave to create new TCL source files
  12. from your existing files. It applies a set of "differences" files to the
  13. original THINK Class Library source files that came with your THINK C
  14. package to create new updated source files.
  15.  
  16. There are two things to watch out for:
  17.  
  18.     •    The AutoWeave program assumes that you have not changed
  19.         how the THINK Class Library source files are organized.
  20.         All of the TCL source files should be a folder called
  21.         THINK Class Library which should contain two folders called
  22.         Core Classes and More Classes.
  23.  
  24.     •    If you modified any of the original source files, you
  25.         should move them to a different folder or rename them.
  26.         Otherwise, the AutoWeave program will replace them with
  27.         updated versions, and your changes will be lost.
  28.         
  29.  
  30. HOW TO USE IT
  31. =============
  32.     ••    Please read through these instructions before you begin.
  33.  
  34.     0.    Be sure that you have your original disk THINK C 3 from your
  35.         THINK C 4.0 package.
  36.  
  37.     1.    Double-click on the file named "TCL Update.Script" to launch
  38.         the AutoWeave program.
  39.         
  40.     2.    The AutoWeave program will ask you to locate the original "THINK
  41.         Class Library" folder. Insert your THINK C 3 disk in the floppy
  42.         drive, choose the folder "THINK Class Library" and click OK.
  43.                 
  44.     3.    The AutoWeave program will ask you to locate your copy of the
  45.         "THINK Class Library" folder.  If you followed the installation
  46.         instructions in your THINK C 4.0 User's Manual, this folder
  47.         is your THINK C Folder.
  48.                 
  49.     4.    The AutoWeave program will ask you to locate the "TCL Update Diffs"
  50.         folder.  This folder is supplied as part of this 
  51.         update.  Select this folder and click OK.  (Be sure
  52.         not to select "TCL Demo Update Diffs" by mistake.)
  53.         
  54.     5.    The AutoWeave program will now modify the appropriate files,
  55.         keeping you informed of its progress.  When it has finished,
  56.         you may want to check one or two of the files, to make sure
  57.         that everything worked.  (For example, if you chose the 
  58.         wrong Diffs folder in step 4, the Weaver wouldn't actually
  59.         do anything, although it might act like it did.)
  60.         
  61.  
  62.  
  63. SUMMARY OF THE CHANGES
  64. ======================
  65.  
  66.     NOTE:    The aSupervisor parameter to descendants of
  67.             CDirector is now required to be of type CApplication
  68.             instead of CBureaucrat. If you get compilation errors
  69.             after updating, look at the declaration of aSupervisor
  70.             in your CDirector and CDocument subclasses.
  71.  
  72. 1.    CApplication.c
  73.         IApplication now calls IBureaucrat(NULL) to init itsSupervisor.
  74.         
  75.         InitMemory now initializes canFail to FALSE.
  76.         
  77. 2.    CBartender.c
  78.         InsertHierMenus now adjust the "afterItem" parameter to ensure
  79.         that it is between 0 and the total number of items in the target
  80.         menu.
  81.         
  82.         InsertHierMenus now passes the correct menu handle to SetItemMark
  83.         and SetItemCmd.
  84.         
  85.         InsertMenuCmd now properly handles the case where an item is being
  86.         added to a menu which initially had no items.
  87.         
  88. 3.    CBitMapPane.c
  89.         IBitMapPane exits if IBitMap fails.
  90.         
  91. 4.    CBureaucrat.c
  92.         UpdateMenus no longer checks for itsSupervisor == NULL;  this is
  93.         unnecessary.
  94.         
  95. 5.    CButton.c
  96.         IButton now initializes printClip and printing.
  97.         
  98.         IButton now adjusts hEncl and vEncl to account for its enclosure's
  99.         origin.
  100.         
  101. 6.    CClipboard.h
  102.         Changed declaration of IClipboard to require aSupervisor to be a
  103.         CApplication.
  104.         
  105. 7.    CClipboard.c
  106.         IClipboard now sets itsScrollPane to NULL if hasWindow is false.
  107.         
  108.         UpdateDisplay now calls DisposHandle(theData) if theData
  109.         points to TEXT  (CStaticText uses a copy, so the original
  110.         is not needed).
  111.         
  112.         Changed implementation of IClipboard to require aSupervisor to be a
  113.         CApplication.
  114.         
  115.         Now #includes CApplication.h.
  116.         
  117. 8.    CDataFile.c
  118.         ReadAll and WriteAll now return errCode.
  119.         
  120. 9.    CDecorator.c
  121.         CenterWindow has been rewritten to account for the menu bar and
  122.         the structure region of the window.
  123.         
  124. 10.    CDirector.h
  125.         Changed declaration of IDirector to require aSupervisor to be a
  126.         CApplication.
  127.         
  128. 11.    CDirector.c
  129.         Changed implementation of IDirector to require aSupervisor to be a
  130.         CApplication.
  131.         
  132. 12.    CDesktop.c
  133.         DispatchClick now sends an Activate message to a window which
  134.         processes an activating click.
  135.         
  136. 13.    CDocument.h
  137.         Changed declaration of IDocument to require aSupervisor to be a
  138.         CApplication.
  139.         
  140. 14.    CDocument.c
  141.         ConfirmClose now updates the document's window before posting the
  142.         "save changes?" alert.
  143.         
  144.         PageCount now returns 0 if itsMainPane == NULL.
  145.         
  146.         Changed implementation of IDocument to require aSupervisor to be
  147.         a CApplication.
  148.         
  149.         Now #includes CApplication.h.
  150.         
  151. 15.    CEditText.c
  152.         Modified DoKeyDown to support scrolling keys on extended keyboards.
  153.         
  154.         Modified DoClick to fix activation problem with multiple EditText 
  155.         fields within a pane.
  156.         
  157.         Now declares gGopher as an extern.
  158.         
  159. 16.    CError.h
  160.         Added declaration of MissingResources method.
  161.         
  162. 17.    CError.c
  163.         GrowZoneFunc now uses SetCurrentA5 and SetA5 instead of SetupA5
  164.         and RestoreA5, as recommended in Tech Note 208.
  165.         
  166.         SevereMacError has been modified and MissingResources has been
  167.         added so that the TCL will fail gracefully when no resource file
  168.         is present.
  169.         
  170.         Now declares gSleepTime and gHasWNE as externs.
  171.         
  172.         Now #includes CStaticText.h.
  173.         
  174. 18.    CFWDesktop.h
  175.         Added CalcTopFloat() method declaration.
  176.         
  177. 19.    CFWDesktop.c
  178.         Added CalcTopFloat() method definition.
  179.         
  180. 20.    CList.c
  181.         MoveDown has been corrected to allow the first item in the list
  182.         to be moved (now tests for i >= 0 instead of i > 0).
  183.         
  184. 21.    CMBarChore.c
  185.         Uses #include "Global.h" instead of #include <Global.h>.
  186.         
  187. 22.    Constants.h
  188.         Added #defines for Home, End, Page Up, Page Down key codes.
  189.         
  190. 23.    CPane.c
  191.         CalcAperture now propagates down to the pane's subviews.
  192.         
  193.         Moved the Pane_CalcAperture function from just above
  194.         AdjustToEnclosure to just above CalcAperture.
  195.         
  196.         The code which sent CalcAperture messages to all of the pane's
  197.         subviews has been removed, since this is done in the CalcAperture
  198.         method itself.
  199.         
  200.         The code which handles moving AND resizing a pane at the same
  201.         time has been changed to redraw the pane after the Offset as
  202.         well as after the ChangeSize.  This causes the original location
  203.         of the pane to be invalidated properly.
  204.         
  205.         IViewTemp now initializes autoRefresh correctly.
  206.         
  207.         FrameToGlobalR now works whether or not the window is visible.
  208.         
  209.         ChangeSize now saves the old aperture before calling ResizeFrame
  210.         (in some cases, ResizeFrame can cause the aperture to be updated).
  211.         
  212. 24.    CPanorama.h
  213.         Added DoKeyDown method declaration (support for scrolling keys
  214.         on extended keyboards).
  215.         
  216.         Added declaration of Pane_EnclosureScrolled so that subclasses of 
  217.         CPanorama may use this function when overriding Scroll.
  218.         
  219. 25.    CPanorama.c
  220.         AutoScroll always calls Prepare after scrolling, even if
  221.         itsScrollPane == NULL.
  222.         
  223.         ResizeFrame ties the scroll position to the left of the
  224.         frame instead of moving the origin.
  225.         
  226.         Added DoKeyDown method to implement Home, End, Page Up, Page
  227.         Down scrolling keys.
  228.         
  229.         Now #includes Constants.h and CWindow.h.
  230.         
  231.         Pane_EnclosureScrolled function is no longer declared static, so
  232.         that subclasses of CPanorama may use this function when overriding
  233.         Scroll.
  234.         
  235.         Scroll now redraws the Panorama by sending an Update message to
  236.         its enclosing window.  Previously, this method was blindly
  237.         throwing away the window's update region before drawing the
  238.         Panorama.
  239.         
  240.         SetScales now ensures that the scales are >= 1.
  241.         
  242. 26.    CPictFile.c
  243.         IPictFile now calls IDataFile instead of IFile.
  244.         
  245. 27.    CPicture.h
  246.         Added declaration of Dispose method.
  247.         
  248. 28.    CPicture.c
  249.         Added Dispose method to dispose of the "macPicture" PicHandle.
  250.         
  251. 29.    CPNTGFile.c
  252.         IPNTGFile now calls IDataFile instead of IFile.
  253.         
  254. 30.    CRadioButton.h
  255.         Changed declaration of IRadioButton to require aSupervisor to be
  256.         a CRadioGroup.
  257.         
  258. 31.    CRadioButton.c
  259.         Changed implementation of IRadioButton to require aSupervisor to be
  260.         a CRadioGroup.
  261.  
  262. 32.    CScrollBar.c
  263.         IScrollBar now initializes printClip and printing.
  264.         
  265. 33.    CStaticText.c
  266.         IStaticTextX no longer passes instance var address to
  267.         TENew, which can move memory.
  268.         
  269.         SetWholeLines now calls CalcAperture before CalcTERects to
  270.         handle the case where the frame has changed size.
  271.         
  272.         In AdjustBounds, corrected the calculation of bounds.right.
  273.         
  274. 34.    CSwitchboard.c
  275.         Modified DoKeyEvent to support F1, F2, F3, F4 keys (undo, cut,
  276.         copy, paste).
  277.         
  278.         Now #includes Commands.h.
  279.         
  280.         Now #defines KeyF1, KeyF2, KeyF3, KeyF4 key codes.
  281.         
  282.         ProcessEvent now gets the mouse location by setting the port to
  283.         the Desktop's port and using GetMouse.  This way, the current port
  284.         is always valid.
  285.         
  286. 35.    CTearOffMenu.h
  287.         ITearOffMenu parameter (aSupervisor) is now a CApplication.
  288.  
  289. 36.    CTearOffMenu.c
  290.         Suspend and Resume now correctly update the gDesktop->topFloat
  291.         instance var by sending gDesktop a CalcTopFloat message.
  292.         
  293.         #includes CFWDesktop instead of CDesktop.
  294.         
  295.         ITearOffMenu parameter (aSupervisor) is now a CApplication.
  296.         
  297. 37.    CTextEnvirons.c
  298.         ITextEnvirons now initializes the textInfo struct.
  299.         
  300. 38.    CWindow.c
  301.         ChangeSize now calls Update() before exiting.
  302.         FrameToGlobalR now works whether or not the window is visible.
  303.         
  304. 39.    TBUtilities.c
  305.         ConcatPStrings now truncates the resulting string if it would be
  306.         longer than 255 chars.
  307.